<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Practice: Iterative Development</title>
<meta name="uma.type" content="Practice">
<meta name="uma.name" content="iterative_development">
<meta name="uma.presentationName" content="Iterative Development">
<meta name="element_type" content="Practice">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_LR_g4J9WEdy3Nc4rvuj7bA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Practice: Iterative Development</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/practice.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">Create a solution in increments. Each increment is completed in a fixed period of time, an iteration.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Content References</th><td class="sectionTableCell">
<ul>
<li>
<img src="./../../../images/roadmap.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/roadmaps/how_to_adopt_85BF1B9B.html" guid="_bpWt8OMPEdyM47cGD2jiaQ">How to Adopt the Iterative Development Practice</a>
</li>
</ul>
<ul>
<li>Key Concepts</li>
<ul>
<li>
<img src="./../../../images/concept.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/iteration_lifecycle_B16552E2.html" guid="_DI_tICNaEdyCq8v2ZO4QcA">Iteration Lifecycle</a>
</li>
<li>
<img src="./../../../images/concept.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/micro_increments_C8773066.html" guid="_S80VwCNbEdyCq8v2ZO4QcA">Micro-Increments</a>
</li>
<li>
<img src="./../../../images/concept.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/retrospective_B003F386.html" guid="_2PfbIA4QEdy2q5zsU8WDnA">Retrospective</a>
</li>
</ul>
</ul>
<ul>
<li>Work Products</li>
<ul>
<li>
<img src="./../../../images/artifact.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/workproducts/iteration_plan_B46FED39.html" guid="_0aQBEslgEdmt3adZL5Dmdw">Iteration Plan</a>
</li>
<li>
<img src="./../../../images/artifact.gif" height="16" width="16"><a href="./../../../core.mgmt.common.extend_supp/workproducts/work_items_list_39D03CC8.html" guid="_rGNWsCbSEdqh1LYUOGRh2A">Work Items List</a>
</li>
<li>
<img src="./../../../images/artifact.gif" height="16" width="16"><a href="./../../../core.mgmt.common.extend_supp/workproducts/risk_list_C4B6F290.html" guid="_Ckay8Cc_EduIsqH1Q6ZuqA">Risk List</a>
</li>
</ul>
</ul>
<ul>
<li>Tasks</li>
<ul>
<li>
<img src="./../../../images/task.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/tasks/assess_results_EC34D88D.html" guid="_0l53cMlgEdmt3adZL5Dmdw">Assess Results</a>
</li>
<li>
<img src="./../../../images/task.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/tasks/manage_iteration_E4D93A64.html" guid="_8S2aICbYEdqh1LYUOGRh2A">Manage Iteration</a>
</li>
<li>
<img src="./../../../images/task.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/tasks/plan_iteration_957C90DC.html" guid="_0keUEMlgEdmt3adZL5Dmdw">Plan Iteration</a>
</li>
</ul>
</ul>
<ul>
<li>Guidance</li>
<ul>
<li>
<img src="./../../../images/report.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/reports/iteration_burndown_9C1C96F5.html" guid="_uAzgkDg3Edu4E8ZdmlYjtA">Iteration Burndown</a>
</li>
<li>Guidelines</li>
<ul>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../core.mgmt.common.extend_supp/guidances/guidelines/agile_estimation_A4EF42B3.html" guid="_CGHskBEdEdqY7JB6N6CW2w">Agile Estimation</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../core.mgmt.common.extend_supp/guidances/guidelines/assign_changes_to_iteration_67B3DEA2.html" guid="__yQQ4L6REdqti4GwqTkbsQ">Assign Changes to an Iteration</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/guidelines/conduct_retrospective_1A6C7321.html" guid="_277QEA4gEdy63f1yVoPyfA">Conduct Project Retrospective</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/guidelines/iteration_assessment_E27E9DDE.html" guid="_FekBAC4IEdyhZrtGEIITGQ">Iteration Assessment</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/guidelines/iteration_planning_C77F13CE.html" guid="_0auiMMlgEdmt3adZL5Dmdw">Iteration Planning</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../core.mgmt.common.extend_supp/guidances/guidelines/managing_risks_B1256EB4.html" guid="_VNxL4ACsEdu8m4dIntu6jA">Managing Risks</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/guidelines/managing_work_items_32AC6ABD.html" guid="_7vEXEMA4EdqSgKaj2SZBmg">Managing Work Items</a>
</li>
<li>
<img src="./../../../images/guidance.gif" height="16" width="16"><a href="./../../../practice.mgmt.iterative_dev.base/guidances/guidelines/prioritizing_work_items_A12C9BEC.html" guid="_oVMZADSoEdy07ZJqOGUGaQ">Prioritizing Work Items</a>
</li>
</ul>
</ul>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.mgmt.slot.base/workproducts/project_definition_and_scope_slot_BB8EB6F7.html" guid="_RJMUcNpUEdyzZqGyZ7hwdw">[Project Definition and Scope]</a>
</li>
<li>
<a href="./../../../core.tech.slot.base/workproducts/technical_architecture_slot_FF074CDD.html" guid="_8OD-cLPTEduocbW-TPTq7A">[Technical Architecture]</a>
</li>
<li>
<a href="./../../../core.tech.slot.base/workproducts/technical_specification_slot_2812F7EF.html" guid="_i3vkoLS-EduDY8LNbMCDBA">[Technical Specification]</a>
</li>
<li>
<a href="./../../../core.tech.slot.base/workproducts/technical_test_results_slot_7B0CA334.html" guid="_fahB0EfUEdyiPI8btkmvmw">[Technical Test Results]</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Purpose</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableCell"><h3>
    Why adopt this practice?
</h3>
<p>
    The iterative approach differs from the traditional software development models, which assume that software development
    proceeds from one phase to another in a sequential manner. For example, in traditional models one first completes the
    requirements specification, which is "set in stone". When the requirements are fully completed, one proceeds to design,
    and then on to the next phase. Towards the later phases of the traditional cycle, disparate software components are
    integrated to produce the final product, and tested by quality engineers and users to remove bugs and validate
    functionality.
</p>
<p>
    The iterative approach is the single most significant improvement to the way we build software products in decades, and
    has significantly improved project success because the feedback cycle is built into the software development lifecycle.
    This is especially significant in the more complex applications that support more demanding stakeholders and more
    complex business processes.
</p>
<p>
    Iterations are used to reduce the risk of software development projects, and to deliver high value functionality to the
    user early on in the lifecycle. You essentially divide up the project into subsets of functionality based on, for
    example, use cases or use case scenarios. At the end of each iteration, you demonstrate or deliver these pieces of
    functionality to stakeholders, so that they can use the features and provide feedback. This feedback can be
    incorporated into future iterations. The iterative model embraces change through a feedback loop, whereas non-iterative
    models seek to prevent changes, which in turn increases the risk that the developed system does not meet the
    stakeholders' needs.
</p>
<p>
    An iterative approach provides business value early on in the lifecycle, thus helping recoup the capital invested. It
    also allows stakeholders to provide feedback while the project is going on, and not at the end when you have spent all
    of the money and time allotted to the project.
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">How to read this practice</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableCell"><p>
    The best way to read this practice is to first familiarize yourself with its overall structure: what it is in it, and
    how it is organized.
</p>
<p>
    Begin by making sure that the teams, including stakeholders, understand what the key concepts are, such as:
</p>
<ul>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/iteration_lifecycle_B16552E2.html" guid="_DI_tICNaEdyCq8v2ZO4QcA">Iteration Lifecycle</a>
    </li>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/micro_increments_C8773066.html" guid="_S80VwCNbEdyCq8v2ZO4QcA">Micro-Increments</a>
    </li>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/guidances/concepts/retrospective_B003F386.html" guid="_2PfbIA4QEdy2q5zsU8WDnA">Retrospective</a>
    </li>
</ul><br />
<br />
<p>
    Next, understand how the various participants in a project collaborate on an iterative development approach.
</p>
<ul>
    <li>
        The <b>project manager</b> facilitates the planning of the project iterations, coordinates interactions with the
        stakeholders, and keeps the project team focused on meeting the project objectives.
    </li>
    <li>
        <b>Stakeholders</b> help the project manager and the team on requirements prioritization in order to minimize
        project risks and maximize business value throughout the iterations. Their constant feedback also directs and
        improves the quality of the project outcome.
    </li>
    <li>
        The <b>team</b> commits to completing the work within each iteration.
    </li>
</ul><br />
<br />
<p>
    Understand how these groups collaborate when they perform the following tasks:
</p>
<ol>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/plan_iteration_957C90DC.html" guid="_0keUEMlgEdmt3adZL5Dmdw">Plan Iteration</a>
    </li>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/manage_iteration_E4D93A64.html" guid="_8S2aICbYEdqh1LYUOGRh2A">Manage Iteration</a>
    </li>
    <li>
        <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/tasks/assess_results_EC34D88D.html" guid="_0l53cMlgEdmt3adZL5Dmdw">Assess Results</a>
    </li>
</ol>
<p>
    Also, understand what work products are used as inputs to and outputs from these tasks, such as work items list, risk
    list and <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/workproducts/iteration_plan_B46FED39.html" guid="_0aQBEslgEdmt3adZL5Dmdw">Iteration Plan</a>.
</p>
<p>
    Last, understand the various guidelines that explain how to plan, run, and assess iterations.
</p>
<p>
    For details on how to adopt this practice, see <a class="elementLink" href="./../../../practice.mgmt.iterative_dev.base/guidances/roadmaps/how_to_adopt_85BF1B9B.html" guid="_bpWt8OMPEdyM47cGD2jiaQ">How to Adopt the Iterative Development Practice</a>.
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">Additional Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableCell"><h3>
    Additional Resources
</h3>
<p>
    For more information on the iterative development approach, see the following:
</p>
<ul>
    <li>
        Kruchten, P. <em>From Waterfall to Iterative Development - A Challenging Transition for Project Managers</em>. The
        Rational Edge, 2000.
    </li>
</ul>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
    <p>
        Retrieved from <a href="http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf">http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf</a>.&nbsp;&nbsp;(<a href="http://www.adobe.com/products/acrobat/alternate.html">Get Adobe Reader</a>)
    </p>
</blockquote>
<ul>
    <li>
        Royce, W. <em>Software Project Management: A Unified Framework</em>. Addison Wesley. 1999.<br />
    </li>
</ul></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
